home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 January: Mac OS SDK / Dev.CD Jan 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / PInterfaces / DriverSynchronization.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  2.4 KB  |  78 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        DriverSynchronization.p
  3.  
  4.      Contains:    Driver Synchronization Interfaces.
  5.  
  6.      Version:    Technology:    MacOS
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT DriverSynchronization;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __DRIVERSYNCHRONIZATION__}
  27. {$SETC __DRIVERSYNCHRONIZATION__ := 1}
  28.  
  29. {$I+}
  30. {$SETC DriverSynchronizationIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __CONDITIONALMACROS__}
  34. {$I ConditionalMacros.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __MACTYPES__}
  37. {$I MacTypes.p}
  38. {$ENDC}
  39.  
  40.  
  41. {$PUSH}
  42. {$ALIGN MAC68K}
  43. {$LibExport+}
  44.  
  45. PROCEDURE SynchronizeIO; C;
  46. FUNCTION CompareAndSwap(oldVvalue: UInt32; newValue: UInt32; VAR OldValueAdr: UInt32): BOOLEAN; C;
  47. FUNCTION TestAndClear(bit: UInt32; VAR startAddress: UInt8): BOOLEAN; C;
  48. FUNCTION TestAndSet(bit: UInt32; VAR startAddress: UInt8): BOOLEAN; C;
  49. FUNCTION IncrementAtomic8(VAR value: SInt8): SInt8; C;
  50. FUNCTION DecrementAtomic8(VAR value: SInt8): SInt8; C;
  51. FUNCTION AddAtomic8(amount: SInt32; VAR value: SInt8): SInt8; C;
  52. FUNCTION BitAndAtomic8(mask: UInt32; VAR value: UInt8): ByteParameter; C;
  53. FUNCTION BitOrAtomic8(mask: UInt32; VAR value: UInt8): ByteParameter; C;
  54. FUNCTION BitXorAtomic8(mask: UInt32; VAR value: UInt8): ByteParameter; C;
  55. FUNCTION IncrementAtomic16(VAR value: SInt16): SInt16; C;
  56. FUNCTION DecrementAtomic16(VAR value: SInt16): SInt16; C;
  57. FUNCTION AddAtomic16(amount: SInt32; VAR value: SInt16): SInt16; C;
  58. FUNCTION BitAndAtomic16(mask: UInt32; VAR value: UInt16): UInt16; C;
  59. FUNCTION BitOrAtomic16(mask: UInt32; VAR value: UInt16): UInt16; C;
  60. FUNCTION BitXorAtomic16(mask: UInt32; VAR value: UInt16): UInt16; C;
  61. FUNCTION IncrementAtomic(VAR value: SInt32): SInt32; C;
  62. FUNCTION DecrementAtomic(VAR value: SInt32): SInt32; C;
  63. FUNCTION AddAtomic(amount: SInt32; VAR value: SInt32): SInt32; C;
  64. FUNCTION BitAndAtomic(mask: UInt32; VAR value: UInt32): UInt32; C;
  65. FUNCTION BitOrAtomic(mask: UInt32; VAR value: UInt32): UInt32; C;
  66. FUNCTION BitXorAtomic(mask: UInt32; VAR value: UInt32): UInt32; C;
  67.  
  68. {$ALIGN RESET}
  69. {$POP}
  70.  
  71. {$SETC UsingIncludes := DriverSynchronizationIncludes}
  72.  
  73. {$ENDC} {__DRIVERSYNCHRONIZATION__}
  74.  
  75. {$IFC NOT UsingIncludes}
  76.  END.
  77. {$ENDC}
  78.